package day9;

import java.util.Scanner;

/**
 * 走方格的方案数
 */

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    /**
     * 请计算n*m的棋盘格子(n为横向的格子数，m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角，
     * 总共有多少种走法，要求不能走回头路，即:只能往右和往下走，不能往左和往上走。
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        //动态规划
        int[][] dp= new int[n + 1][m + 1];

        for (int i = 0; i <=n ; i++) {
            dp[i][0]=1;
        }
        for (int i = 0; i <=m ; i++) {
            dp[0][i]=1;
        }
        for (int i = 1; i <=n ; i++) {
            for (int j = 1; j <=m ; j++) {
                dp[i][j]=dp[i-1][j]+dp[i][j-1];
            }
        }
        System.out.println(dp[n][m]);
    }
}